;(2)将 data 段中的程序全部转换为大写,细节上有错误，找出来

assume cs:code
data segment
	db 'word',0
	db 'unix',0
	db 'wind',0
	db 'good',0
data ends

code segment

	start:
	mov ax,data
	mov ds,ax
	mov bx,0
	
	mov cx,4						;;错误就在于cx，子程序capital里改变了cx的数据，而主程序中也用了cx来存储循环次数。导致外部cx被子程序内部修改。
	s:
	mov si,bx
	call capital
	add bx,5
	loop s 
	
	mov ax,4c00h
	int 21h
	
	capital:
	mov cl,[si]						;错误就在于cx，子程序capital里改变了cx的数据，而主程序中也用了cx来存储循环次数。导致外部cx被子程序内部修改。
	mov ch,0
	jcxz ok
	and byte ptr [si], 11011111b
	inc si
	jmp short capital
	ok:
	ret
code ends

end start